#include "vector.h"
//#include <iostream>
using namespace std;

int main(){
	typedef Vector<float, 3, true> Vec3f;
	typedef Vector<float, 3, false> Vec3ft;
	Vec3f f, g;
	Vec3ft x;
	x[0] = 3.0f; x[1] = 2.0f; x[2] = 1.0f;
	f[0] = 1.0f; f[1] = 2.0f; f[2] = 3.0f;
	g[0] = 3.0f; g[1] = 2.0f; g[2] = 1.0f;

	Vec3f h = f + g;

	Vec3f m = g * 3.0f;
	Vec3f n = g + 3.0f;
	Vec3f z = x.transpose() + f;
	std::cout << f << endl; // [1 2 3]
	std::cout << g << endl; // [3 2 1]
	std::cout << h << endl; // [4 4 4]
	std::cout << m << endl; // [9 6 3]
	std::cout << n << endl; // [6 5 4]
	std::cout << x << endl; // [3 2 1]^T
	std::cout << z << endl; // [4 4 4]
	std::cout << (f * g) << '\n'
		  << f.length() << std::endl; // 10
	std::cout << crossProduct(f, g) << std::endl;

	return 1;
}
